package com.requiem.hist_group_manage_springboot.common;

import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

/**
 * HTTP参数解析工具类
 * 被Spring管理，可通过@Autowired注入使用
 */
@Component
public class HttpParamUtil {
    @Autowired
    HttpServletRequest request;

    public Map<String, String> parseQueryString() {
        Map<String, String> params = new HashMap<>();
        String queryString = request.getQueryString();
        if (queryString == null || queryString.isEmpty()) {
            return params;
        }

        // 分割参数对（如 "id=1&name=test" → ["id=1", "name=test"]）
        String[] paramPairs = queryString.split("&");
        for (String pair : paramPairs) {
            // 分割键和值（如 "id=1" → ["id", "1"]）
            String[] keyValue = pair.split("=", 2); // 限制分割为2部分，避免值中包含"="
            if (keyValue.length == 2) {
                try {
                    // URL解码（处理特殊字符和中文）
                    String key = URLDecoder.decode(keyValue[0], StandardCharsets.UTF_8);
                    String value = URLDecoder.decode(keyValue[1], StandardCharsets.UTF_8);
                    params.put(key, value);
                } catch (Exception e) {
                    // 处理解码异常
                    throw new RuntimeException("解析查询参数失败: " + pair, e);
                }
            }
        }
        return params;
    }
}
